#ifndef CLASS_FACTORY
#define CLASS_FACTORY

#include <EObject.h>
#include <QString>
#include <QList>
#include <ClassFactoryObject.h>
#include <QSharedPointer>
#include <QStandardItem>
class ClassFactory : public QObject
{
    Q_OBJECT
public:
    ClassFactory( );
    virtual ~ClassFactory();
    void addFactoryObject(QSharedPointer<ClassFactoryObject> factoryObj);
    virtual EObject* creatObject(const QString& typeName);
    virtual QStandardItem* creatItem(const QString& typeName);//this is used when load XML file

private:
    QList<QSharedPointer<ClassFactoryObject>> m_factoryObjList;
};



#endif // CLASS_FACTORY
